/*
 * SensorMessage.h
 *
 *  Created on: Feb 10, 2009
 *      Author: Andrzej Olchawa
 *      mailto: andrzejolchawa@gmail.com
 *      http://www.hardtechnology.org
 *      This is a part of the Armazd project, which is covered by
 *      GNU GPL v2 license.
 */

#ifndef SENSORMESSAGE_H_
#define SENSORMESSAGE_H_

/* Include section */
#include <iostream>
#include <string>
#include "SensorMessageUtils.h"

/* namespace declaration */
using namespace std;

/* SensorMessage class definition */
class SensorMessage
{

private:
	/* Variables related with monitored host */

	// reporter information
	string reporterName;
	string reporterAddress;
	int    reporterPort;

	// source information
	string sourceName;
	string sourceAddress;
	int    sourcePort;

	// target information
	string targetName;
	string targetAddress;
	int    targetPort;

	// message
	string message;

	// other
	int facility;
	int priority;

public:

	/* Constructors and destructor */
	SensorMessage();
	virtual ~SensorMessage();

	/* Getters and setters */
	void setReporterName(string);
	void setReporterAddress(string);
	void setReporterPort(int);

	void setSourceName(string);
	void setSourceAddress(string);
	void setSourcePort(int);

	void setTargetName(string);
	void setTargetAddress(string);
	void setTargetPort(int);

	void setMessage(string);

	void setFacility(int);
	void setPriority(int);

	string getReporterName();
	string getReporterAddress();
	int    getReporterPort();

	string getSourceName();
	string getSourceAddress();
	int    getSourcePort();

	string getTargetName();
	string getTargetAddress();
	int    getTargetPort();

	string getMessage();

	int    getFacility();
	int	   getPriority();

};

#endif /* SENSORMESSAGE_H_ */
